“Cloud computing” is an emerging paradigm in which various computing resources are offered over a network, such as the Internet, as scalable services. As an example, the Amazon™ Elastic Computing Cloud (EC2) is a web service that provides scalable compute capacity over the internet. A user of EC2 can create one or more virtual machines and host various requirements within the virtual machines.
Cloud computing provides computation, software, data access, and storage services that do not require the user to be concerned with the physical location, maintenance, and configuration of the system that delivers the services. Cloud computing paradigms can provide scalable and perpetual IT services. Users of cloud computing services can increase capacity or add capabilities on the fly without investing in new infrastructure, training new personnel, or licensing new software. Cloud computing typically is a delivery model for IT services based on Internet protocols, and it typically involves provisioning of dynamically scalable and virtualized devices, i.e., nodes.
Cloud computing services may take the form of web-based tools or applications that users can access and use through a web browser or console as if the programs were installed locally on their own computers. Software and data can be stored on servers at remote, and even unknown, locations. Most cloud computing environments provide services delivered through shared data-centers and appearing as one or more points of access for consumers of the service.
As illustrated in FIG. 1, a cloud computing service 20 can include various services, such as storage service 12, compute service 14, and software service 16 as well as other services. Each of these services is available for configuring one or more virtual machines by client device 10. Cloud computing services allow users to configure virtual machines while reducing overhead, as all overhead is managed by the cloud service provider. Users ordinarily pay for the cloud service based on some computing unit as a metric of resources used over time. For example, payment can be based on the number of users, time of use, required resources, and the like.
In a cloud computing environment, virtual machines are created using “machine images”, such as the Amazon™ Machine Image (AMI). A machine image is a virtual appliance which is used to instantiate a virtual machine. The machine image can include a read only file system image which includes an operating system and any additional software required to deliver a service and data. The operating system and the software are stored in the machine image in an installed format and are then used to instantiate a virtual machine.
When a user desires to start a virtual machine, the user specifies the appropriate machine image which is then used by the service to create a virtual machine instance. The instance will have the operating system and all the necessary software, which were bundled up in the machine image as described above.
When starting a virtual machine, a user can use an existing machine image if the user's needs correspond substantially to the operating system and software stored in an existing machine image. However, if a user has different needs, the user will first have to load a plain image with the basic operating system and then install the necessary software/data into the image to create the desired machine image. Creating a machine image is time consuming. Various user communities have created and stored many machine images covering a variety of software combinations. However, there are always new needs that require a new machine image. Also, storing the machine images requires a great deal of storage resources and corresponding financial resources to pay for the storage resources.
While systems and methods are described herein by way of example and embodiments, those skilled in the art recognize that the systems and methods are not limited to the embodiments or drawings described. It should be understood that the drawings and description are not intended to be limiting to the particular form disclosed. Rather, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the appended claims. Any headings used herein are for organizational purposes only and are not meant to limit the scope of the description or the claims. As used herein, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.